package com.book.bookshop.web;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.book.bookshop.entity.Book;
import com.book.bookshop.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.jws.WebParam;
import javax.management.modelmbean.ModelMBeanOperationInfo;

//图书控制器
@Controller
@RequestMapping("/home")
public class BookController {
    @Autowired
    private BookService bookService;
    @RequestMapping("/index")
    public String index(){
        return "index";
    }

//    获取图书信息
    //达成分类的情况，插件已经声明，如果不声明插件，则不成功
    @RequestMapping("/getBookData")
    public String getBookData(Model model,Integer page,Integer category){
        //分页的方法，mybatis plus
//        Wrapper是mybatis中的条件构造器
        QueryWrapper<Book> queryWrapper=new QueryWrapper<>();
        //根据category进行分类，1的在一页，查询category为1的
        //根据传到后端的值，来进行查询，查询每个
        queryWrapper.eq("category",category);
//        分页每一页4个记录
        IPage<Book> iPage=bookService.page(new Page<>(page,4),queryWrapper);
//        model返回东西到前端
        //getRecords是得到记录
        model.addAttribute("bookList",iPage.getRecords());
        //getCurrent是得到页码数
        //上一页
        //下一页
        //当前页
        //总也数
        model.addAttribute("pre",iPage.getCurrent()-1);
        model.addAttribute("next",iPage.getCurrent()+1);
        model.addAttribute("cur",iPage.getCurrent());
        model.addAttribute("pages",iPage.getPages());
        model.addAttribute("category",category);
        return "bookData";
    }

    //图书列表页
    @RequestMapping("/bookList")
    public String bookList(String category, Model model){
        model.addAttribute("category",category);
        return "books_list";
    }

    //获取图书列表数据
    @RequestMapping("/getBookListData")
    public String getBookListData(String category,Model model){
        //分页的方法，mybatis plus
//        Wrapper是mybatis中的条件构造器
        QueryWrapper<Book> queryWrapper=new QueryWrapper<>();
        //根据category进行分类，1的在一页，查询category为1的
        //根据传到后端的值，来进行查询，查询每个
        queryWrapper.eq("category",category);
//        分页每一页4个记录
        IPage<Book> iPage=bookService.page(new Page<>(1,12),queryWrapper);
//        model返回东西到前端
        //getRecords是得到记录
        model.addAttribute("bookList",iPage.getRecords());
        //getCurrent是得到页码数
        //上一页
        //下一页
        //当前页
        //总也数
        model.addAttribute("pre",iPage.getCurrent()-1);
        model.addAttribute("next",iPage.getCurrent()+1);
        model.addAttribute("cur",iPage.getCurrent());
        model.addAttribute("pages",iPage.getPages());
        model.addAttribute("category",category);
        return "booksListData";
    }
}
